This invention relates to optical data storage systems, and more particularly to systems for encoding data represented by binary signals within such an optical system, and even more particularly to a system for encoding a unique repetitive pattern in a sector of data that has been encoded with a variable word length run-length limited code.
Over the past two decades or so, there have been two major trends in the data processing industry that have worked together to revolutionize the way that information is gathered, stored, and interpreted. The first trend has been the expansion of technological sophistication, as exemplified by the microcomputer chip. That is, computing power, which once required roomsful of equipment and kilowatts of electrical power to operate, can now be found in very small silicon chips. The second trend has been the cost of purchasing such computing power. Particularly in the area of memory--as costs have dropped and capacities have increased--there has been an inevitable rush to take advantage of the new-found memory space and fill it with information. In this respect, the demand for more memory and storage space has always seemed to outstretch the available supply of such memory space.
Unfortunately, for users with exceptionally large data storage needs, the magnetic-based storage peripheral devices adapted for use with high performance computers (i.e., magnetic tape and disk drives) have not been able to fill the need for more storage space. Traditionally, the need for more storage space in such large data storage systems has been addressed by merely adding additional magnetic disk drives and/or magnetic tape drives. This has been costly both in terms of expense (purchase/lease price plus maintenance costs) and floor space. Moreover, even though there have been some significant strides in recent years with respect to increasing the data storage capacity of these magnetic-based storage devices, the theoretical design limits of such systems are rapidly being approached. Hence, merely adding more magnetic disk or tape drives is no longer viewed as a practical alternative to the ever increasing need for storing more and more information. It is therefore apparent that a new type of data storage system is needed in order to handle the large amounts of data that information users need to store.
Optical technology--that is, the technology of using a laser beam to burn or otherwise mark very small holes on a suitable medium in a pattern representative of the data to be stored, which pattern can subsequently be read by monitoring a laser beam directed through or reflected off of the previously recorded marks--has been available in laboratories for some time. Unfortunately, however, such laboratory technology has not provided a cost effective alternative for use in data storage products. This is because the optical components have tended to occupy entire rooms and the power associated with operating the laser and associated components has been enormous. Further, such laboratory systems are not easily interfaced with existing high performance computer systems. That is, the techniques used to format and input the data have been totally incompatible with more conventional formatting and data processing techniques used in the magnetic-based storage systems. Moreover, the few optical storage systems that have been commercially introduced in the last few years have primarily related to the storing of video signals (image storing devices) as opposed to the storing of digital information. The few digital optical storage devices that do exist do not represent a viable alternative or supplement to the existing peripheral magnetic-based storage devices for the user of large data bases of information.
A continuing problem that has existed with whatever type of data storage system is used is the problem of minimizing the errors that occur during read or write. The number of errors that occur in such a system is typically measured by a parameter referred to as the "bit error rate." This parameter is typically expressed as a number indicating the number of good bits of digital data that can be obtained for every bad bit of data that occurs. Thus, a bit error rate of 100,000 (10E+5) indicates that 100,000 bits of data can be read or played back before a bad or incorrect bit of data will be encountered. In order to provide a viable data storage system, bit error rates in excess of 10E+12 are generally required.
Numerous Error Correction codes (ECC) and similar error correcting schemes are known in the art in order to improve the bit error rate of data processing systems. The very existence of such ECC schemes evidences the continuing and recurring problem of reducing errors that are introduced into such processing systems.
Before any ECC or similar scheme can be employed, however, there must be an accurate method invoked for detecting the data that has been stored. This requires some sort of synchronization of a clock signal with the detected data bit signals. This synchronization is typically realized with a phase locked loop (PLL) circuit wherein the data transitions appearing in the detected data bit signal are compared with the phase of a clock signal generated by a VFO (variable frequency oscillator) circuit. Errors between the data transitions and clock phase are used to vary the frequency (period) of the VFO signal so as to lock the phase of the two signals together.
In many digital data handling systems, such as in the optical storage system herein disclosed, a character of information is represented by a unique combination of 8 binary bits sometimes referred to as a byte. Generally, information is transferred between units of a data processing system and even within units on a byte basis, usually serial-by-byte. The storage of this data within the system, however, is sometimes done on a serial-by-bit, serial-by-byte basis, as in a magnetic or optical disk storage unit. Information is therefore presented to the disk in a serial-by-bit, serial-by-byte fashion for recording on one of a plurality of concentric recording tracks in the form of magnetic transitions or optical marks occurring at predefined bit times. The recording process generally involves operating on a serial bit stream corresponding to a sequence of characters.
It is therefore necessary not only to detect bit-by-bit information, but also to detect byte information, i.e., where one byte ends and another begins. Because bytes are typically arranged in serial groups, often referred to as words, it is also necessary to detect the boundary of such groups of bytes. This process of detecting byte and byte-grouping boundaries is referred to as synchronization. Special marks or patterns may be encoded with the data in order to make synchronization possible. Other schemes employ special data or clock tracks wherein synchronization information is permanently stored.
A class of codes have been developed in the art which are referred to as run-length limited codes. The characteristic of these codes is that a transition is guranteed at least every "n" bit times. In these codes it is also guaranteed that adjacent transitions will be separated by at least "d" bit times. Practical examples for "d" and "n" are 2,7 and 1,4. A 2,7 run-length limited code therefore would guarantee at least two binary zeros between adjacent binary ones and no more than seven binary zeros in a sequence. Having a minimum or maximum number of zeros between adjacent binary ones ensures that some bit transitions will always occur, thereby providing a signal onto which the clock signals generated by the PLL circuits may lock.
Run-length limited codes are also classified as fixed or variable rate codes. The fixed rate run-length limited code implies that the number of bits used to represent a code word is a fixed multiple of the number of bits in the data word prior to encoding, e.g., a two bit data word is encoded as a four bit code word, a three bit word is encoded as a six bit code word, etc. In a variable rate run-length limited code, there is no fixed relationship maintained in the encoding process between the number of bits in the data word and the number of bits in the code word.
In systems which do not employ run-length limited codes, the sync pattern is generally a series of alternate ones and zeros and can be generated quite easily by serializing the same one byte a number of times to generate the appropriate signal to the encoder. The problem becomes more complex however where the encoder functions to encode the serial input stream corresponding to the sequence of eight bit characters into a run-length limited code signal. While additional hardware may be used to solve the complexity of the problem, which additional hardware might add additional cost to the function, the main disadvantage is the cost of the control hardware which would be required, especially where the part of the control hardware could be achieving some additional control function during the time the sync pattern has to be encoded or decoded. The present invention provides a system for encoding and decoding a sync pattern where the same basic circuitry used to perform the encode/decode function of the fixed rate run-length limited code for the data may also be used to encode and decode the sync pattern.